Skip to content

Build: Build list adjustment and compatibility code cleaning; Move OpenBSD out of regular releasing#5824

Open
KobeArthurScofield wants to merge 20 commits intoXTLS:mainfrom
KobeArthurScofield:rm-bsd
Open

Build: Build list adjustment and compatibility code cleaning; Move OpenBSD out of regular releasing#5824
KobeArthurScofield wants to merge 20 commits intoXTLS:mainfrom
KobeArthurScofield:rm-bsd

Conversation

@KobeArthurScofield
Copy link
Copy Markdown
Contributor

@KobeArthurScofield KobeArthurScofield commented Mar 18, 2026

该 PR 旨在改进构建流程并对长期不使用的系统及架构相关兼容性代码进行清理

  • 新增后备构建流程:该流程中的系统/架构组合仍会在代码发生变更时进行构建,但不会参与发版流程。
    • 该区域用于存放暂停正式构建状态及处于不受支持但有长尾问题的系统/架构组合;
    • 该流程用于在代码更改发生时提示相关的系统/架构组合是否能正常构建,但不一定会成为阻塞因素;
    • 该流程中构建的 assets 不包含 geodata ,以及特定系统或架构需要的附属内容;
    • 该流程构建出的 assets 可在 GitHub Actions 中下载,保存期限为 90 日。
  • 整理现有构建列表(部分内容参考 https://learn.microsoft.com/en-us/dotnet/core/compatibility/jit/11/minimum-hardware-requirements ):
    • x86-64 及 AArch64 (ARM64/ARMv8) 将为主要支持架构;x86 将属于附带支持架构;
    • 重新整理附加系统/架构表;
    • 针对 macOS AArch64 指定最低指令集版本为 v8.4 (Apple M1);
    • 针对 Windows AArch64 指定最低指令集版本为 v8.2 (Snapdragon 850);
    • 针对 macOS x86-64 指定最低指令集版本为 v3 (Intel Haswell);
    • 针对 Windows x86-64 指定最低指令集版本为 v2 (Intel: Nehalem (Core, Xeon), Sandy Bridge, Silvermont; AMD: Bulldozer, Jaguar; Zhaoxin: ZX-C);
    • 流程细节整理。
  • 清理针对 WASM、Illumos、JS、Solaris 等无法再正常构建内容的兼容标记。
  • 由于目前对 OpenBSD 的支持人力不足, OpenBSD 转入“众包维护”模式并移入后备构建:
    • 仅在发版时不进行构建,日常构建过程不受影响;
    • 仍然接受对 OpenBSD 的支持代码的更新及改进;
    • 获得相对活跃的支持后将重新加入标准构建流程;
    • 获得 TUN 支持后将重新加入标准构建流程。

针对过时或老旧架构的重要提示

考虑到 32 位系统及 MIPS 相关系统式微,后续将在新的小版本 Go 发布时对构建表进行调整。
调整过程将受 Go 支持的影响或现实设备支持而发生变化。

时间 系统/架构组合 预期操作
待定 Windows 7, x86, x86-64 最后一版将为 Go 2 发布前,或 2028 年八月新的 Go 1.x 版本发布前,或受其它因素影响而提前结束(如使用率过低)。该节点取最早到来时间。
2027 年二月 Windows, x86 在新的 Go 小版本发布时移入后备构建,此后由 Go 上游决定
2027 年二月 Linux, ARMv5, ARMv6 在新的 Go 小版本发布时移除构建
2027 年二月 Linux, MIPS64 BE/LE 在新的 Go 小版本发布时移除构建
2027 年二月 Linux, MIPS32 BE/LE 在新的 Go 小版本发布时移入后备构建
待定 Linux, x86 由 Go 上游决定
待定 Linux, ARMv7 由 Go 上游决定

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 19, 2026

还有 macos-32 和 windows-32 是否有必要移除

v8a 加了些用到 CPU 新指令集的编译,可以加上

@Fangliding
Copy link
Copy Markdown
Member

我是觉得磕巴磕巴能跑起来最好就算了 反正这些东西都是分开放的也不会造成史山问题

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

macos-32 连 go 自己都早就不支持了,加进了排除表

windows-32 就是不知道会不会还有人在盒子或者老旧机器上面用(主流 gui 客户端基本在一两年前移除 32 位支持了),备选项是用 win7-32 来承接
印象中 win8 开始 64 位设备就很多了 不过 go 官方那边 windows x86-32 还是一级支持

至于 v8a 那个, 只能说复杂程度比 amd64 还离谱,amd64 只要不是骨灰级机器的话上 goamd64=v2 是没问题的,但是 arm64 在 windows 这边也就一年多前开始强制 cpu 至少 v8.1,macos 自家生态应该可以拉高一些,但是 linux 上面就是碎片的海洋可能拉个 v8.1 都会有爆炸的,安装脚本还不好分辨应该拿哪个版本,除非针对性编译不然没啥大用

bsd 的话主要还是用的人少(虽然 freebsd 用的人更多,也许可以留着),维护性只能是有人提再等有缘人修的那种,也挺尴尬的就是 netbsd 和 dragonfly 在有 wireguard 之后就没它俩的事了

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 19, 2026

原来 macos-32 早没了,那没事了,windows-32 也先留着吧,本来想的是针对性编译一下 v8a 的新指令集,以后再看吧

FreeBSD 和 OpenBSD 的话我感觉能用这俩系统的都是骨灰级发烧友吧,但没见有多少 PR,啥时候有人 PR 了 TUN 再考虑吧

@KobeArthurScofield KobeArthurScofield marked this pull request as ready for review March 19, 2026 11:01
@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

KobeArthurScofield commented Mar 19, 2026

那 BSD 是保留兼容代码但是不进行发版时一起编译,还是保持现在这样,还是完全不动(不移除)?

ARM v8a 的话给 windows 和 macos 上 v8.x 应该还是有戏的,这个也要不要

先把保留兼容代码但不编译和 v8a 加针对编译上了

@KobeArthurScofield KobeArthurScofield changed the title Build: Remove FreeBSD & OpenBSD Build: Drop compiling for FreeBSD & OpenBSD & Linux on IBM Z; Optimize building list Mar 19, 2026
@KobeArthurScofield

This comment was marked as outdated.

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 21, 2026

freebsd 和 openbsd 保留兼容代码和 friendly-name,仅移除构建过程(需用户手动编译),用于后续加回(如果太久无维护基本也接近荒废清理)

那就先这样吧,如果通过移除构建而吸引到了更多的维护者再把构建加回去

移除 linux s390x (IBM Z) 构建

这个感觉可以留着?

macos 为 arm64 v8.4 (m1 能跑起来就没问题)

测试过了吗

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

移除 linux s390x (IBM Z) 构建

这个感觉可以留着?

能买或者租 IBM z 系主机来用的似乎也不太可能在机器上跑这个,但是真用起来也可以编译

macos 为 arm64 v8.4 (m1 能跑起来就没问题)

测试过了吗

根据 https://github.com/llvm/llvm-project/blob/1f9c54a15a87f72ca45fb47ec006d1eae63f4eb0/llvm/unittests/TargetParser/TargetParserTest.cpp#L1141 来看设置成 v8.4 是没问题的,有小白鼠能跑起来反馈最好

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 21, 2026

Linux s390x 留着吧,Windows arm64 非常小众改成 v8.1 意义不大,还是改回去吧

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

windows arm64 至少能上的机器配置一般芯片也不会 v8.0 倒是 除了在 wp 硬件上强上 windows arm64 的 老一点的 arm64 surface 好像都有 v8.1 还是 v8.2 来着 反正加不加问题也不大

@xujiegb
Copy link
Copy Markdown

xujiegb commented Mar 21, 2026

  • freebsd

FreeBSD不至于移除吧,刚刚接触就

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

KobeArthurScofield commented Mar 21, 2026

FreeBSD不至于移除吧,刚刚接触就

  1. 只暂停构建,兼容代码什么的都留着
  2. 不阻止自己编译(Go 搭建环境和编译还算简单的)
  3. 有兼容性相关的 PR 提过来没问题会合并进来
  4. 有能活跃维护相关代码的 BSD 用户贡献的话恢复构建
  5. 能解决 BSD 上的 TUN 的话绝对恢复构建
  6. 暂停构建的原因是主要维护没有会 BSD 的,提 issue 只能有缘人

@KobeArthurScofield KobeArthurScofield changed the title Build: Drop compiling for FreeBSD & OpenBSD & Linux on IBM Z; Optimize building list Build: Temporarily drop compiling for FreeBSD & OpenBSD; Optimize building list Mar 21, 2026
@KobeArthurScofield

This comment was marked as outdated.

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 22, 2026

由于仍然保留了 FreeBSD & OpenBSD 的兼容性代码,和 #5786 会存在些 conflicts,放下个版本吧

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 23, 2026

@KobeArthurScofield rebase,今天的版本仍构建 BSD 吧,下个版本再移除,可以把无关 BSD 的部分拆出另一个 PR 先合并

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

done

这几天版本稳定了再合吧避免一些尴尬的问题

没问题就更新 PR 描述了

@drTr0jan
Copy link
Copy Markdown

drTr0jan commented Apr 2, 2026

@KobeArthurScofield

  • 由于目前对 FreeBSD 及 OpenBSD 的支持人力不足,FreeBSD 及 OpenBSD 转入“众包维护”模式并移入后备构建:

    • 仅在发版时不进行构建,日常构建过程不受影响;
    • 仍然接受对 FreeBSD 及 OpenBSD 的支持代码的更新及改进;
    • 获得相对活跃的支持后将重新加入标准构建流程;
    • 获得 TUN 支持后将重新加入标准构建流程。

I prepare TUN support for FreeBSD. It will be done soon.

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

I prepare TUN support for FreeBSD. It will be done soon.

Wow glad to hear that. Looking forward for your PR @drTr0jan

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Apr 5, 2026

那就先等等,给 FreeBSD 一个机会吧,果然我说的一旦移除构建了肯定会吸引人来维护,这还只是说要移除

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

我觉得 FreeBSD 确实有机会,用户量多一些的好处吧
FreeBSD 可能除了 ARMv7 可能还要讨论一下以外,它的 x86 32 位是不是可以不留了,FreeBSD 15 至少没给 32 位 x86 发版了

想了想还是给 Windows ARMv8 上个 v8.2 吧,估计太早或者等级低了的 Windows on ARM 现在可能不太好用了
至于 x86-64 的话, 相关优化可能并不明显 ,macOS 可以上到 v3 除非还有在用 2013 版 Mac Pro 的才不好说 Windows 上个 v2 还行吧 现在应该不会还有在 2011 年之前的机器上装新版系统吧,真装上了以后期的 Win10 来说体验也不怎么好

另外 Go 1.27 的话链接器的 Windows PE 头改成了最低要求 NT 10.0 才能运行 (golang/go@341b5e2) ,到时候升了 Go 1.27 之后 Windows 版在旧系统上面会被系统主动阻止运行而不会出现任何崩溃信息,win7 版要完全承接 7/8/8.1/Server 2008R2/2012/2012R2Windows x86-64 锁 v2 的话可能只有老 CPU 偷渡 Win10/11 的机器会中招了

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Apr 6, 2026

win7 版要完全承接 7/8/8.1/Server 2008R2/2012/2012R2

Win7 版的含金量还在上升

等一下 FreeBSD,发 XDRIVE 那个版本再合并这个 PR

OpenBSD 的话先移除构建,没人抱怨啥的话兼容性代码也可以移除了

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

先把 FreeBSD 加上吧,现在加上的是 x86-64、ARMv8 和 ARMv7。 x86 还有人下载吗

OpenBSD 改成仅 CI 作为意外 breaking 提示吧,就发版的时候对 OpenBSD 不会做任何操作,兼容代码什么的先留着好了 还留了个下载相关资源的通路。毕竟这么久了还有零零散散的 issues 至少说明不是没人用,但是就是维护不活跃,有时候功能差太远也挺尴尬的

顺便整理了一下 32 位 ARM 的编译参数处理,明年移除 Linux ARMv5/v6 之后统一 GOARM 参数位置

Test 全炸了但是什么都没动过,应该是某种机缘巧合的问题

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

整个 Build 列表从最初继承过来的时候就只加过三四个东西,但是考虑到 2026/2027 和 2021 已经不一样了,现在的表也是非常具有年代感了。主要是有的可能还有人用就只能先打个基础提前说明了

发下一版的时候就可以提前说明要发生的变更了,不然 issues 能吃到饱

另外 win7 提高了系统补丁要求但是无人察觉,看来一些基础补丁还是到位了

@KobeArthurScofield KobeArthurScofield changed the title Build: Temporarily drop compiling for FreeBSD & OpenBSD; Optimize building list Build: Build list adjustment and compatibility code cleaning; Move OpenBSD out of regular releasing Apr 7, 2026
@drTr0jan
Copy link
Copy Markdown

drTr0jan commented Apr 7, 2026

I prepare TUN support for FreeBSD. It will be done soon.

Wow glad to hear that. Looking forward for your PR @drTr0jan

Welcome: #5891
I have been waiting #5860 for auto-delete a tun if after exit for full testing. :)

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Apr 7, 2026

FreeBSD 和 OpenBSD 的构建只留 64 位吧

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

FreeBSD 和 OpenBSD 的构建只留 64 位吧

行吧,好了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants